<?php

/**
 * Validateur qui vérifie si la combinaison login/pwd est valide 
 */
class ZendTremplin_Validate_UserAuthentification extends Zend_Validate_Abstract {

    protected $_pwd;
    protected $_login;

    const INCORRECT = 'authentificationFailed';

    /**
     * Définition des messages d'erreurs
     *
     * @var array
     */
    protected $_messageTemplates = array(
        self::INCORRECT => "The combinaison login/password is wrong"
    );

    /**
     * Constructeur du validator
     * @param array $options tableau devant contenir un Zend_Form_Element_Text et un Zend_Form_Element_Password
     * exemple : 
     * array(
     *      'login' => objet Zend_Form_Element_Text,
     *      'pwd' => objet Zend_Form_Element_Password
     * )
     */
    public function __construct(array $options = array()) {
        if (!empty($options['pwd']))
            $this->_pwd = $options['pwd'];
        if (!empty($options['login']))
            $this->_login = $options['login'];
    }

    /**
     * Vérifie si la combinaison login/pwd est valide
     * @param type $value
     * @return boolean 
     */
    public function isValid($value) {   
        $mapper = new ZendTremplin_Model_UserMapper();
        if (!$mapper->isRightCombination($this->_login->getValue(), $this->_pwd->getValue())) {
            $this->_error(self::INCORRECT);
            return false;
        }
        return true;
    }

}

?>
